##################################################
# nastavenia
CFLAGS_COMMON=-pipe -Wall -ggdb
CC=gcc
CXX=g++

##################################################
# nastavenie knihoven s OpenGL
ifeq ($(OS), Windows_NT)
	CFLAGS=$(CFLAGS_COMMON) -DWIN32 -I. -IGL
	LIBS=-lopengl32 -lglu32 -lSDL -lSDL_Image
else
	CFLAGS=$(CFLAGS_COMMON) `sdl-config --cflags` -I. -IGL -lglut -l3ds -DUSE_SDL
	LIBS=`sdl-config --libs` -lGL -lGLU -lXmu -lX11 -lXi -L/usr/X11R6/lib -lSDL -lSDL_image -lGLEW
endif

CXXFLAGS=$(CFLAGS)

##################################################
# obecne ciele

MUL=mul

DEPS = objectloader.o \
	shaderprogram.o \
	texture.o \
	framebuffer.o \
	framebufferhandler.o \
	vertexarrayobject.o \
	bufferobject.o \
	textureplane.o

.PHONY: all program clean

all: program

program: $(MUL)

clean:
	$(RM) $(MUL) $(DEPS)
	$(RM) *~

##################################################
# pravidla

#%.o: %.c
#	$(CC) -c -o $@ $^ $(CFLAGS)

#%.o: %.cpp
#	$(CXX) -c -o $@ $^ $(CFLAGS)

%: %.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

%: %.cpp
	$(CXX) -o $@ $^ $(CFLAGS) $(LIBS)

##################################################
# zavislosti

objectloader.o: objectloader.cpp objectloader.h 

shaderprogram.o: shaderprogram.cpp shaderprogram.h 

texture.o: texture.cpp texture.h

framebuffer.o: framebuffer.cpp framebuffer.h

framebufferhandler.o: framebufferhandler.cpp framebufferhandler.h

vertexarrayobject.o: vertexarrayobject.cpp vertexarrayobject.h

bufferobject.o: bufferobject.cpp bufferobject.h

textureplane.o: textureplane.cpp textureplane.h

# MUL

mul: mul.cpp mul.h $(DEPS)